﻿using EFORM.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity.Infrastructure;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace EFORM.Controllers
{
    public class HomeController : Controller
    {
        //操作数据上下文的对象
        testEntities db = new testEntities();
        public ActionResult Del(int id)
        {
            try
            {                
                //db.代码_药品基本信息表.Remove(new 代码_药品基本信息表() { 药品通用ID =id});
                //创建要删除的对象
                代码_药品基本信息表 modelDel = new 代码_药品基本信息表() { 药品通用ID = id };
                //添加到EF管理容器
                db.代码_药品基本信息表s.Attach(modelDel);
                //将对象包装类标识为删除
                db.代码_药品基本信息表s.Remove(modelDel);
                //更新到数据库
                db.SaveChanges();
                return RedirectToAction("SelectData","Home");
            }
            catch(Exception ex)
            {
                return Content("删除失败" + ex.Message);
            }        
        }
        public ActionResult SelectData(int page=1, int pageSize =30)
        {
            //1.1标准查询运算符    
            //IQueryable<Models.代码_药品基本信息表> query= db.代码_药品基本信息表.Where(d=>d.药品通用ID<2000);
            //支持延迟加载 此时真是返回的类型是dbquery<T> 
            //DbQuery<Models.代码_药品基本信息表> query = (db.代码_药品基本信息表.Where(d => d.药品通用ID < 2000)) as DbQuery<Models.代码_药品基本信息表>;
            //只有使用到数据时才使用  比如query.ToList()
            //sqo  标准查询运算符
            //List<Models.代码_药品基本信息表> list = query.ToList();
            //---------------------------------------------\
            //立即查询  把 dbQuery转成集合，返回查询集合
            //List<Models.代码_药品基本信息表> list = db.代码_药品基本信息表.Where(d => d.药品通用ID < 2000).ToList();
            //------------------------------------------
            //使用linq

            //List<Models.代码_药品基本信息表> list = (from d in db.代码_药品基本信息表 where d.药品通用ID < 2000 select d).ToList();
            //string sql = "select [药品ID] ,[药品通用ID] ,[药品规格ID] ,[部门ID],[药品名称] from test.[dbo].[代码_药品基本信息表] WHERE [药品通用ID]<2000";
            //List<Models.代码_药品基本信息表> list = (from d in db.代码_药品基本信息表s where d.药品通用ID < 2000 select d).ToList();
            //List<Models.DrugModels> list = new List<DrugModels>();
            //SqlDataReader reader = SqlHelper.ExecuteReader(sql);
            //DrugModels dr = new DrugModels();
            //dr.药品ID = reader.GetInt32(0);
            //dr.药品通用ID = reader.GetInt32(1);
            //dr.药品规格ID = reader.GetInt32(2);
            //dr.部门ID = reader.GetInt32(3);
            //dr.药品名称 = reader.GetString(4);
                     
            //将集合数据传给视图
            //ViewBag.DataList = list;
            //ViewData键值对

            var list = db.代码_药品基本信息表s.OrderBy(p => p.药品ID).Skip((page-1)*pageSize).Take(pageSize).ToList();
            ViewData["DataList"] = list;
            ViewData["pageSize"] = pageSize;
            ViewData["page"] = page;
            ViewData["totalCount"] = db.代码_药品基本信息表s.Count();

            return View();
        }
        public ActionResult Index()
        {
            ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}
